// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_WM_CORE_TRANSIENT_WINDOW_CONTROLLER_H_
#define UI_WM_CORE_TRANSIENT_WINDOW_CONTROLLER_H_

#include "base/macros.h"
#include "ui/wm/public/transient_window_client.h"
#include "ui/wm/wm_export.h"

namespace wm {

// TransientWindowClient implementation. Uses TransientWindowManager to handle
// tracking transient per window.
class WM_EXPORT TransientWindowController
    : public aura::client::TransientWindowClient {
public:
    TransientWindowController();
    ~TransientWindowController() override;

    // TransientWindowClient:
    void AddTransientChild(aura::Window* parent, aura::Window* child) override;
    void RemoveTransientChild(aura::Window* parent, aura::Window* child) override;
    aura::Window* GetTransientParent(aura::Window* window) override;
    const aura::Window* GetTransientParent(const aura::Window* window) override;

private:
    DISALLOW_COPY_AND_ASSIGN(TransientWindowController);
};

} // namespace wm

#endif // UI_WM_CORE_TRANSIENT_WINDOW_CONTROLLER_H_
